package com.abc.recycling.model;

import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class StatisticsData {
    
    /**
     * 订单统计
     */
    private OrderStatistics orderStats;
    
    /**
     * 回收员统计
     */
    private CollectorStatistics collectorStats;
    
    /**
     * 回收站统计
     */
    private StationStatistics stationStats;
    
    /**
     * 区域统计
     */
    private List<AreaStatistics> areaStats;
    
    @Data
    public static class OrderStatistics {
        private Long totalOrders;           // 总订单数
        private Double totalWeight;         // 总回收重量
        private Double totalIncome;         // 总收入
        private Double averageRating;       // 平均评分
    }
    
    @Data
    public static class CollectorStatistics {
        private Long totalCollectors;       // 总回收员数
        private Integer activeCollectors;    // 活跃回收员数
        private Double avgRating;           // 平均评分
        private Double avgMonthlyOrders;    // 平均月订单数
        private List<Map<String, Object>> topCollectors;     // 绩效排名
    }
    
    @Data
    public static class StationStatistics {
        private Long totalStations;         // 总回收站数
        private Integer activeStations;     // 营业中回收站数
        private Double avgDailyOrders;      // 平均日订单数
        private List<Map<String, Object>> topStations;       // 回收站排名
    }
    
    @Data
    public static class AreaStatistics {
        private String area;                // 区域名称
        private Long orderCount;            // 订单数量
        private BigDecimal totalWeight;     // 总回收重量
        private Long stationCount;          // 回收站数量
        private Double avgRating;           // 平均评分
        private Long userCount;             // 用户数量
        private List<Map<String, Object>> trendData;         // 趋势数据
    }
} 